package num111;

/**
 * @author : DuJiabao
 * @Date : 2021/2/6 22:27
 * @Project : sword-finger-offer
 * @File : null.java
 * @Desc : 二叉树的最小深度
 * https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/
 * 方法：当root为空时，直接return 0。
 * 当左节点或右节点存在一个为空的时候，不能把它当作叶子节点，只能被抛弃。
 * 当左右结点都为空时，返回1。
 */
class Solution {
  public int minDepth(TreeNode root) {
    if (root == null) return 0;
    int left = minDepth(root.left);
    int right = minDepth(root.right);
    if (left == 0 || right == 0) return left + right + 1;
    return Math.min(left, right) + 1;
  }
}
